package cn.itcast.service;

import cn.itcast.entity.PageResult;
import cn.itcast.pojo.Menu;

import java.util.List;

public interface MenuService {
    /**
     * 新增菜单
     *
     * @param menu
     * @param permissionIds
     */
    void add(Menu menu, Integer[] permissionIds);

    /**
     * 分页查询菜单数据
     *
     * @param currentPage
     * @param pageSize
     * @param queryString
     * @return
     */
    PageResult pageQuery(Integer currentPage, Integer pageSize, String queryString);

    /**
     * 根据id查询菜单基本信息
     * @param id
     * @return
     */
    Menu findById(Integer id);

    /**
     * 查询菜单关联的权限数据
     * @param permissionId
     * @return
     */
    Integer[] selectedPermissionId(Integer permissionId);

    /**
     * 更新菜单数据
     *
     * @param menu
     * @param permissionIds
     */
    void update(Menu menu, Integer[] permissionIds);

    /**
     * 根据id删除菜单数据
     * @param id
     */
    void deleteById(Integer id);

    /**
     * 查询所有菜单数据
     * @return
     */
    List<Menu> findAll();

    /**
     * 根据用户名查询所在菜单
     * @param username
     * @return
     */
    Menu findRoleByUserName(String username);
}
